CREATE TABLE pst_PermissoesTela (
  pst_id INTEGER  NOT NULL   IDENTITY ,
  pst_descricaoArea VARCHAR    ,
  pst_area VARCHAR      ,
PRIMARY KEY(pst_id));
GO




CREATE TABLE pca_parcela (
  pca_id INT  NOT NULL   IDENTITY ,
  pca_numeroparcela INT    ,
  pca_valorparcela DECIMAL      ,
PRIMARY KEY(pca_id));
GO




CREATE TABLE tpo_tipoproduto (
  tpo_tpo_id INT  NOT NULL   IDENTITY ,
  tpo_descricao VARCHAR(45)      ,
PRIMARY KEY(tpo_tpo_id));
GO




CREATE TABLE uf_uf (
  uf_id INT  NOT NULL   IDENTITY ,
  uf_nome VARCHAR(2)      ,
PRIMARY KEY(uf_id));
GO




CREATE TABLE tva_venda (
  tva_id INT  NOT NULL   IDENTITY ,
  tva_descricao VARCHAR(45)      ,
PRIMARY KEY(tva_id));
GO




CREATE TABLE cde_cidade (
  cde_id INT  NOT NULL   IDENTITY ,
  uf_uf_uf_id INT  NOT NULL  ,
  cde_cidade VARCHAR(45)      ,
PRIMARY KEY(cde_id)  ,
  FOREIGN KEY(uf_uf_uf_id)
    REFERENCES uf_uf(uf_id));
GO


CREATE INDEX cde_cidade_FKIndex1 ON cde_cidade (uf_uf_uf_id);
GO


CREATE INDEX IFK_Rel_04 ON cde_cidade (uf_uf_uf_id);
GO


CREATE TABLE end_endereco (
  end_id INT  NOT NULL   IDENTITY ,
  cde_cidade_cde_id INT  NOT NULL  ,
  end_descricao VARCHAR(45)    ,
  end_numero BIGINT    ,
  end_bairro VARCHAR(45)      ,
PRIMARY KEY(end_id)  ,
  FOREIGN KEY(cde_cidade_cde_id)
    REFERENCES cde_cidade(cde_id));
GO


CREATE INDEX end_endereco_FKIndex1 ON end_endereco (cde_cidade_cde_id);
GO


CREATE INDEX IFK_Rel_05 ON end_endereco (cde_cidade_cde_id);
GO


CREATE TABLE fbe_fabricante (
  fbe_id INT  NOT NULL   IDENTITY ,
  end_endereco_end_id INT  NOT NULL  ,
  fbe_codigo INT    ,
  fbe_descricao VARCHAR(45)    ,
  fbe_cnpjcpf VARCHAR(25)    ,
  fbe_rg VARCHAR(25)    ,
  fbe_telefone VARCHAR(20)    ,
  fbe_celular VARCHAR(20)    ,
  fbe_email VARCHAR(45)    ,
  fbe_usuarioentrada VARCHAR(20)    ,
  fbe_dataentrada DATE    ,
  fbe_usuarioalteracao VARCHAR(20)    ,
  fbe_dataalteracao DATE      ,
PRIMARY KEY(fbe_id)  ,
  FOREIGN KEY(end_endereco_end_id)
    REFERENCES end_endereco(end_id));
GO


CREATE INDEX fbe_fabricante_FKIndex1 ON fbe_fabricante (end_endereco_end_id);
GO


CREATE INDEX IFK_Rel_18 ON fbe_fabricante (end_endereco_end_id);
GO


CREATE TABLE cne_cliente (
  cne_id INT  NOT NULL   IDENTITY ,
  end_endereco_end_id INT  NOT NULL  ,
  cne_codigo INT    ,
  cne_nome VARCHAR(45)    ,
  cne_rg VARCHAR(15)    ,
  cne_cpf VARCHAR(15)    ,
  cne_telefone VARCHAR(20)    ,
  cne_celular VARCHAR(20)    ,
  cne_datanasc DATE    ,
  cne_dependentes INT    ,
  cne_situacao BIT    ,
  cne_usuarioentrada VARCHAR(20)    ,
  cne_dataentrada DATE    ,
  cne_usuarioalteracao INT    ,
  cne_dataalteracao DATE      ,
PRIMARY KEY(cne_id)  ,
  FOREIGN KEY(end_endereco_end_id)
    REFERENCES end_endereco(end_id));
GO


CREATE INDEX cne_cliente_FKIndex1 ON cne_cliente (end_endereco_end_id);
GO


CREATE INDEX IFK_Rel_06 ON cne_cliente (end_endereco_end_id);
GO


CREATE TABLE fcr_fornecedor (
  fcr_id INT  NOT NULL   IDENTITY ,
  end_endereco_end_id INT  NOT NULL  ,
  fcr_codigo INT    ,
  fcr_descricao VARCHAR(45)    ,
  fcr_cnpjcpf VARCHAR(25)    ,
  fcr_rg VARCHAR(25)    ,
  fcr_telefone VARCHAR(20)    ,
  fcr_celular VARCHAR(20)    ,
  fcr_email VARCHAR(45)    ,
  fcr_usuarioentrada VARCHAR(20)    ,
  fcr_dataentrada DATE    ,
  fcr_usuarioalteracao VARCHAR(20)    ,
  fcr_dataalteracao DATE      ,
PRIMARY KEY(fcr_id)  ,
  FOREIGN KEY(end_endereco_end_id)
    REFERENCES end_endereco(end_id));
GO


CREATE INDEX fcr_fornecedor_FKIndex1 ON fcr_fornecedor (end_endereco_end_id);
GO


CREATE INDEX IFK_Rel_19 ON fcr_fornecedor (end_endereco_end_id);
GO


CREATE TABLE pdo_produto (
  pdo_id INT  NOT NULL   IDENTITY ,
  fbe_fabricante_fbe_id INT  NOT NULL  ,
  tpo_tipoproduto_tpo_tpo_id INT  NOT NULL  ,
  pdo_codigo INT    ,
  pdo_descricao VARCHAR(45)    ,
  pdo_valor DECIMAL    ,
  pdo_usuarioentrada VARCHAR(20)    ,
  pdo_dataentrada DATE    ,
  pdo_usuarioalteracao VARCHAR(20)    ,
  pdo_dataalteracao DATE      ,
PRIMARY KEY(pdo_id)    ,
  FOREIGN KEY(tpo_tipoproduto_tpo_tpo_id)
    REFERENCES tpo_tipoproduto(tpo_tpo_id),
  FOREIGN KEY(fbe_fabricante_fbe_id)
    REFERENCES fbe_fabricante(fbe_id));
GO


CREATE INDEX pdo_produto_FKIndex1 ON pdo_produto (tpo_tipoproduto_tpo_tpo_id);
GO
CREATE INDEX pdo_produto_FKIndex2 ON pdo_produto (fbe_fabricante_fbe_id);
GO


CREATE INDEX IFK_Rel_14 ON pdo_produto (tpo_tipoproduto_tpo_tpo_id);
GO
CREATE INDEX IFK_Rel_15 ON pdo_produto (fbe_fabricante_fbe_id);
GO


CREATE TABLE fco_funcionario (
  fco_id INTEGER  NOT NULL   IDENTITY ,
  end_endereco_end_id INT  NOT NULL  ,
  fco_codigo INTEGER    ,
  fco_nome VARCHAR(45)    ,
  fco_rg VARCHAR(20)    ,
  fco_cpf VARCHAR(20)    ,
  fco_datanasc DATE  NOT NULL  ,
  fco_situacao BIT    ,
  fco_usuarioentrada VARCHAR(45)    ,
  fco_dataentrada DATE    ,
  fco_usuarioalteracao VARCHAR(45)    ,
  fco_dataalteracao DATE    ,
  fco_telefone VARCHAR(20)    ,
  fco_celular VARCHAR(20)      ,
PRIMARY KEY(fco_id)  ,
  FOREIGN KEY(end_endereco_end_id)
    REFERENCES end_endereco(end_id));
GO


CREATE INDEX fco_funcionario_FKIndex1 ON fco_funcionario (end_endereco_end_id);
GO


CREATE INDEX IFK_Rel_07 ON fco_funcionario (end_endereco_end_id);
GO


CREATE TABLE ica_itemcompra (
  fcr_fornecedor_fcr_id INT  NOT NULL  ,
  pdo_produto_pdo_id INT  NOT NULL  ,
  ica_quantidade INT    ,
  ica_preco DECIMAL      ,
PRIMARY KEY(fcr_fornecedor_fcr_id, pdo_produto_pdo_id)    ,
  FOREIGN KEY(fcr_fornecedor_fcr_id)
    REFERENCES fcr_fornecedor(fcr_id),
  FOREIGN KEY(pdo_produto_pdo_id)
    REFERENCES pdo_produto(pdo_id));
GO


CREATE INDEX fcr_fornecedor_has_pdo_produto_FKIndex1 ON ica_itemcompra (fcr_fornecedor_fcr_id);
GO
CREATE INDEX fcr_fornecedor_has_pdo_produto_FKIndex2 ON ica_itemcompra (pdo_produto_pdo_id);
GO


CREATE INDEX IFK_Rel_16 ON ica_itemcompra (fcr_fornecedor_fcr_id);
GO
CREATE INDEX IFK_Rel_17 ON ica_itemcompra (pdo_produto_pdo_id);
GO


CREATE TABLE vda_venda (
  vda_id INT  NOT NULL   IDENTITY ,
  fco_funcionario_fco_id INTEGER  NOT NULL  ,
  cne_cliente_cne_id INT  NOT NULL  ,
  pca_parcela_pca_id INT  NOT NULL  ,
  tva_venda_tva_id INT  NOT NULL  ,
  vda_codigo INT    ,
  vda_valortotal DECIMAL    ,
  vda_usuarioentrada VARCHAR(20)    ,
  vda_dataentrada DATE    ,
  vda_usuarioalteracao VARCHAR(20)    ,
  vda_dataalteracao DATE      ,
PRIMARY KEY(vda_id)        ,
  FOREIGN KEY(tva_venda_tva_id)
    REFERENCES tva_venda(tva_id),
  FOREIGN KEY(pca_parcela_pca_id)
    REFERENCES pca_parcela(pca_id),
  FOREIGN KEY(cne_cliente_cne_id)
    REFERENCES cne_cliente(cne_id),
  FOREIGN KEY(fco_funcionario_fco_id)
    REFERENCES fco_funcionario(fco_id));
GO


CREATE INDEX vda_venda_FKIndex1 ON vda_venda (tva_venda_tva_id);
GO
CREATE INDEX vda_venda_FKIndex2 ON vda_venda (pca_parcela_pca_id);
GO
CREATE INDEX vda_venda_FKIndex3 ON vda_venda (cne_cliente_cne_id);
GO
CREATE INDEX vda_venda_FKIndex4 ON vda_venda (fco_funcionario_fco_id);
GO


CREATE INDEX IFK_Rel_08 ON vda_venda (tva_venda_tva_id);
GO
CREATE INDEX IFK_Rel_09 ON vda_venda (pca_parcela_pca_id);
GO
CREATE INDEX IFK_Rel_10 ON vda_venda (cne_cliente_cne_id);
GO
CREATE INDEX IFK_Rel_11 ON vda_venda (fco_funcionario_fco_id);
GO


CREATE TABLE lgn_login (
  lgn_id INTEGER  NOT NULL   IDENTITY ,
  fco_funcionario_fco_id INTEGER  NOT NULL  ,
  lgn_usuario VARCHAR(20)    ,
  lgn_senha VARCHAR(8)    ,
  lgn_usuarioentrada VARCHAR(20)    ,
  lgn_dataentrada DATE      ,
PRIMARY KEY(lgn_id)  ,
  FOREIGN KEY(fco_funcionario_fco_id)
    REFERENCES fco_funcionario(fco_id));
GO


CREATE INDEX lgn_login_FKIndex1 ON lgn_login (fco_funcionario_fco_id);
GO


CREATE INDEX IFK_Rel_06 ON lgn_login (fco_funcionario_fco_id);
GO


CREATE TABLE iva_itemvenda (
  pdo_produto_pdo_id INT  NOT NULL  ,
  vda_venda_vda_id INT  NOT NULL  ,
  iva_quantidade INT    ,
  iva_preco DECIMAL      ,
PRIMARY KEY(pdo_produto_pdo_id, vda_venda_vda_id)    ,
  FOREIGN KEY(pdo_produto_pdo_id)
    REFERENCES pdo_produto(pdo_id),
  FOREIGN KEY(vda_venda_vda_id)
    REFERENCES vda_venda(vda_id));
GO


CREATE INDEX pdo_produto_has_vda_venda_FKIndex1 ON iva_itemvenda (pdo_produto_pdo_id);
GO
CREATE INDEX pdo_produto_has_vda_venda_FKIndex2 ON iva_itemvenda (vda_venda_vda_id);
GO


CREATE INDEX IFK_Rel_12 ON iva_itemvenda (pdo_produto_pdo_id);
GO
CREATE INDEX IFK_Rel_13 ON iva_itemvenda (vda_venda_vda_id);
GO


CREATE TABLE pss_permissoes (
  pst_PermissoesTela_pst_id INTEGER  NOT NULL  ,
  lgn_login_lgn_id INTEGER  NOT NULL    ,
PRIMARY KEY(pst_PermissoesTela_pst_id, lgn_login_lgn_id)    ,
  FOREIGN KEY(pst_PermissoesTela_pst_id)
    REFERENCES pst_PermissoesTela(pst_id),
  FOREIGN KEY(lgn_login_lgn_id)
    REFERENCES lgn_login(lgn_id));
GO


CREATE INDEX pst_PermissoesTela_has_lgn_login_FKIndex1 ON pss_permissoes (pst_PermissoesTela_pst_id);
GO
CREATE INDEX pst_PermissoesTela_has_lgn_login_FKIndex2 ON pss_permissoes (lgn_login_lgn_id);
GO


CREATE INDEX IFK_Rel_01 ON pss_permissoes (pst_PermissoesTela_pst_id);
GO
CREATE INDEX IFK_Rel_02 ON pss_permissoes (lgn_login_lgn_id);
GO


